//|||||||||||||||||||||||||||||||||||||||||||||||

#ifndef GAME_ENTITY_HPP
#define GAME_ENTITY_HPP

//|||||||||||||||||||||||||||||||||||||||||||||||

#include "DotSceneLoader.hpp"

#include <OgreSubEntity.h>
#include <OgreMaterialManager.h>
#include "AdvancedOgreFramework.hpp"

//|||||||||||||||||||||||||||||||||||||||||||||||

class GameEntity
{
public:
	static GameEntity Block;
	static GameEntity Apple;
	static GameEntity Bottle;
	static GameEntity ChocBar;
	static GameEntity MBPack;
	static GameEntity Pill;
	static GameEntity Pillow;
	static GameEntity WineGlass;
	static GameEntity Zippo;

	static bool entitiesInitialized;

	// called at the beginning of the main
	// to create and load all the meshes
	static void InitializeEntites(Ogre::SceneManager* pSceneMgr);

	GameEntity();
	
	void setEntity(Ogre::Entity* entity);

	Ogre::Entity* getNewEntity();

	Ogre::Entity* getNewEntity(const std::string & name);

private:
	Ogre::Entity* m_pEntity;
	std::string baseName;
	int nbEntities;
};

//|||||||||||||||||||||||||||||||||||||||||||||||

#endif

//|||||||||||||||||||||||||||||||||||||||||||||||